﻿Public Class GebaeudeAruura
    Inherits ObjektGebaeude

    Public Sub New(ByVal neuSpieler As Integer, ByVal neuX As Integer, ByVal neuY As Integer, ByVal Spielfeld As ObjektSpielfeld)
        MyBase.New("ARUURA", neuSpieler, neuX, neuY, ObjektSpielfeld.Bodenschlacht)
        GebaeudeLaden()
        getBildID(Spielfeld)
    End Sub
    Public Sub New(ByVal neuSpieler As Integer, ByVal neuLeben As Integer, ByVal neuBesetzungszahl As Integer, ByVal neuX As Integer, ByVal neuY As Integer, ByVal Feuerzahl As Integer, ByVal Spielfeld As ObjektSpielfeld)
        MyBase.New("ARUURA", neuSpieler, neuLeben, neuBesetzungszahl, neuX, neuY, Feuerzahl, ObjektSpielfeld.Bodenschlacht)
        GebaeudeLaden()
        getBildID(Spielfeld)
    End Sub

    Public Sub New()
        MyBase.New("", -1, -1, -1, ObjektSpielfeld.Bodenschlacht)
        Gebaeudename = "Aruura"
        getFonds = False
        Deckung = 0
        Bestzunge = -1
        Schaden = 5
        Reichweite = 10
        Rechteck.Height = Hauptmenue.Feldbreite * 3
        Rechteck.Width = Hauptmenue.Feldbreite * 3
        Angriff = Angriffe.Kreis
        If Spieler = 0 Then
            Leben = -1
        Else
            Select Case DataSettings.CommanderWarsGameModus
                Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.CommanderWars
                    Leben = 500
                Case Else
                    Leben = 99
            End Select
        End If
        Feuerbereite = -1
        Feuerladung = 1
        RotationsZenturm = New Point(Hauptmenue.Feldbreite * 3 / 2, Hauptmenue.Feldbreite * 3 / 2)
        WirdZu = "ARUURAZERSTOERT"
        Verweisgebaeude = New Integer(,) {{-1, -1}, {-1, 0}, {1, -1}, {0, -1}, {0, 1}, {1, 0}, {1, 1}, {-1, 1}}
    End Sub

    Private Sub GebaeudeLaden()
        Gebaeudename = "Aruura"
        getFonds = False
        Deckung = 0
        Bestzunge = -1
        Schaden = 5
        Reichweite = 5
        Rechteck.Height = Hauptmenue.Feldbreite * 3
        Rechteck.Width = Hauptmenue.Feldbreite * 3
        Angriff = Angriffe.Kreis
        If Spieler = 0 Then
            Leben = -1
        Else
            Select Case DataSettings.CommanderWarsGameModus
                Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.CommanderWars
                    Leben = 500
                Case Else
                    Leben = 99
            End Select
        End If
        Feuerbereite = 1
        Feuerladung = 1
        RotationsZenturm = New Point(Hauptmenue.Feldbreite * 3 / 2, Hauptmenue.Feldbreite * 3 / 2)
        WirdZu = "ARUURAZERSTOERT"
        Verweisgebaeude = New Integer(,) {{-1, -1}, {-1, 0}, {1, -1}, {0, -1}, {0, 1}, {1, 0}, {1, 1}, {-1, 1}}
        If Rechteck.X > 0 And Rechteck.Y > 0 Then
            For I = 0 To Verweisgebaeude.GetLength(0) - 1
                If Not Objektverwalter.Spielfeld Is Nothing Then
                    Objektverwalter.Spielfeld.Landschaften(Rechteck.X + Verweisgebaeude(I, 0), Rechteck.Y + Verweisgebaeude(I, 1), ObjektSpielfeld.Bodenschlacht).Gebaeude = New GebaeudeVerweis(Spieler, Rechteck.X, Rechteck.Y, ObjektSpielfeld.Bodenschlacht)
                End If
            Next
        End If
    End Sub
    Public Overrides Function GetMaxLeben() As Integer
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.CommanderWars
                If Leben > 500 Then Return Leben
                Return 500
            Case Else
                If Leben > 99 Then Return Leben
                Return 99
        End Select
    End Function
    Public Overrides Sub Feuer(ByVal X As Integer, ByVal Y As Integer)
        If DataSettings.KonsolenSpielBefehle Then
            Konsole.Write("Fire with Aruura to deal damage to Enemy Units in Range.")
        End If
        GenerateNetzBefehlGebaeudeFeuer(X, Y)
        KreisFeuerAngriff()
        BackbufferSpiel.AddAnimation("TALONGUNFIRE", 0, New Point(Rechteck.X, Rechteck.Y), False, Schlacht)
        ObjektLadeklasse.KreisFeuerAnimation(Reichweite, 2, "TALONGUNTREFFER", Rechteck.X, Rechteck.Y, 0, GetSpieler.Team, 6, 2, True)
        Feuerbereit = -1
        Objektverwalter.Spielfeld.Regeln.CheckSieg()
        Dim M As ObjektSpielMenue = Objektverwalter.Menue
        M.Spielmodus = ObjektSpielMenue.Spielmodi.Nichts
    End Sub
    Public Overrides Sub FeuerradiusAnzeigen()
        KreisAnzeigen("ROT")
        MusikEngine.LoadWav(DataSettings.Resourcenpfad + "Sound\Sound Effects\Overworld\Einheitausgewaehlt.wav", False)
        Dim M As ObjektSpielMenue = Objektverwalter.Menue
        M.Spielmodus = ObjektSpielMenue.Spielmodi.FeuerradiusAnzeigen
    End Sub
    Public Overrides Sub DOSpielFrame()
        Feuerbereit = 1
    End Sub
    Public Overrides Function GetLandschaftsuntergrund() As String()
        Return New String() {"EBENE", "SCHNEE", "WUESTE", "EBENE+SCHROTT"}
    End Function
    Public Overrides Function GetAngriffsFelder() As System.Drawing.Point()
        Return GetKreisFelder()
    End Function
    Public Overrides Function IsAttackField(ByVal X As Integer, ByVal Y As Integer) As Boolean
        If Objektverwalter.Spielfeld.Regeln.KeineGebaeudeSchwachstelle Then
            Return MyBase.IsAttackField(X, Y)
        Else
            X -= Rechteck.X
            Y -= Rechteck.Y
            If Y = 1 And X = 0 Then
                Return True
            Else
                Return False
            End If
        End If
    End Function
End Class
